1Writer Cycle Bullet
リアルタイムロギング
新しいバージョン→1Writer Cycle Bullet 2
このJavaScriptコードは、1Writerアプリで選択された行の行頭を様々なマークダウン形式にサイクルさせるためのものです。次の4つの状態を順番にサイクルします。
1. 通常の箇条書き(- )
2. 未完了のチェックボックス(- [ ] )
3. 完了済みのチェックボックス(- [x] )
4. 行頭なし(箇条書きやチェックボックスを削除)
## 特徴
- 選択された行の現在のマークダウン形式を自動的に判別します。
- 箇条書き → 未完了チェックボックス → 完了チェックボックス → 行頭なしの順にサイクルします。
- 選択された行にのみ適用されます。
- テキストが選択されていない場合のエラーハンドリングも含まれています。
## インストール方法
1. 提供されているJavaScriptコードをコピーします。
2. 1Writerを開きます。
3. 「スクリプト」セクションに移動して、新しいスクリプトを作成します。
4. コピーしたJavaScriptコードをスクリプトエディタに貼り付けます。
5. Markdown Bullet Cycle など、適当な名前を付けてスクリプトを保存します。
## 使用方法
1. 1Writerで、変更したい行を選択します。
2. 「スクリプト」メニューからこのスクリプトを実行します。
3. スクリプトが、選択した行の行頭に対して以下の形式を順番に適用します。
- - (箇条書き)
- - [ ] (未完了のチェックボックス)
- - [x] (完了済みのチェックボックス)
- 行頭なし(通常のテキスト)
この操作を繰り返すことで、形式を順番に切り替えることができます。
## 例
### 初期状態:
`markdown
これはサンプルのタスクです
`
### 最初の実行後:
`markdown
- これはサンプルのタスクです
`
### 2回目の実行後:
`markdown
- これはサンプルのタスクです
`
### 3回目の実行後:
`markdown
- x これはサンプルのタスクです
`
### 4回目の実行後:
`markdown
これはサンプルのタスクです
code:js
// 選択されている行の範囲を取得
let selectedRange = editor.getSelectedLineRange();
if (!selectedRange) {
ui.alert("Error", "Could not retrieve the selected line range.");
return;
}
// 選択されている行のテキストを取得
let selectedText = editor.getTextInRange(selectedRange0, selectedRange1);
if (!selectedText) {
ui.alert("Error", "No text found in the selected range.");
return;
}
selectedText = selectedText.trimStart(); // 行頭の空白を除去
// 行頭の状態を確認し、次のステップに切り替え
if (selectedText.startsWith('- x ')) {
// チェックボックス完了 -> 行頭なし
selectedText = selectedText.replace('- x ', '');
} else if (selectedText.startsWith('- ')) {
// チェックボックス未完了 -> チェックボックス完了
selectedText = selectedText.replace('- ', '- x ');
} else if (selectedText.startsWith('- ')) {
// 箇条書き -> チェックボックス未完了
selectedText = selectedText.replace('- ', '- ');
} else {
// 行頭なし -> 箇条書き
selectedText = '- ' + selectedText;
}
// 変換後のテキストをエディタに反映
editor.replaceTextInRange(selectedRange0, selectedRange1, selectedText);
## エラーハンドリング
スクリプト実行中に問題が発生した場合(例: テキストが選択されていない)、ユーザーにアラートを表示してエラーを通知します。
## コード
code
これで、1Writerアプリ内で簡単にマークダウン形式のサイクルを実行できます。